﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using BUS;
using DTO;
using System.Globalization;

namespace NGU
{
    public partial class TourDuLich : System.Web.UI.Page
    {
        protected List<TourDTO> tourLst =  new List<TourDTO>();
        protected void Page_Load(object sender, EventArgs e)
        {
            this.no_info_msg.InnerText = "";
            this.other_search_details.Visible = false;
            TourBUS bus = new TourBUS();
            this.span_type.InnerHtml = " ";
            this.span_departure.InnerHtml = " ";
            this.span_visit.InnerHtml = "";

            //process request from search box
            if (Request["action"] != null)
            {
                if (Request["action"].ToString().ToLower().CompareTo("search") ==0)
                {
                    this.other_search_details.Visible = true;
                    string tourtype = Request["tourtype"] == null ? "" : Request["tourtype"].ToString();
                    string location = Request["location"] == null ? "" : Request["location"].ToString();
                    this.span_location.InnerHtml = location;
                    string fromPrice = Request["fromprice"] == null ? "0" : Request["fromprice"].ToString();
                    string toPrice = Request["toprice"] == null ? "21" : Request["toprice"].ToString();
                    DateTime fromDate;
                    DateTime toDate;

                    if(Request["fromdate"] == null)
                    {
                        fromDate = DateTime.Now.AddYears(-100);
                    }
                    else
                    {
                        try
                        {
                            fromDate = DateTime.ParseExact(Request["fromdate"].ToString(), "MM/dd/yyyy", CultureInfo.InvariantCulture);
                            this.span_fromdate.InnerText = String.Format("{0:dd/MM/yyyy}", fromDate);
                        }
                        catch(Exception ex)
                        {
                            fromDate = DateTime.Now.AddYears(-100);
                        }
                    }


                    if(Request["toDate"] == null)
                    {
                        toDate = DateTime.Now.AddYears(-100);
                    }
                    else
                    {
                        try
                        {
                            toDate = DateTime.ParseExact(Request["toDate"].ToString(), "MM/dd/yyyy", CultureInfo.InvariantCulture);
                            this.span_todate.InnerText = String.Format("{0:dd/MM/yyyy}", toDate);
                        }
                        catch(Exception ex)
                        {
                            toDate = DateTime.Now.AddYears(100);
                        }
                    }

                    switch (tourtype)
                    {
                        case "1": tourtype = "Trong nước";
                            this.span_type.InnerHtml = " trong nước";
                            break;
                        case "2": tourtype = "Nước ngoài";
                            this.span_type.InnerHtml = " nước ngoài";
                            break;
                        case "3": tourtype = "City tour";
                            this.span_type.InnerHtml = " city tour";
                            break;
                        case "4": tourtype = "One-day tour";
                            this.span_type.InnerHtml = " one-day tour";
                            break;
                        default: tourtype = "";
                            break;                           
                    }
                    float frPrice = 0;
                    if (fromPrice == "-1" || fromPrice == "0")
                    {
                        frPrice = 0;
                    }
                    else
                    {                        
                       frPrice = int.Parse(fromPrice) * 1000000;
                       if(fromPrice == "21")
                       {
                           this.span_fromprice.InnerText = "trên 20,000,000";
                       }
                        else
                           this.span_fromprice.InnerText = frPrice.ToString("##,#", CultureInfo.CreateSpecificCulture("en-US"));
                    }
                    float tPrice = 0;
                    if (toPrice  == "-1" )
                    {
                        tPrice = 1000000000;
                    }
                    else
                        if (toPrice == "21")
                        {
                            tPrice = 1000000000;
                            this.span_toprice.InnerText = "trên 20,000,000";
                        }
                        else
                        {
                            if (toPrice == "0")
                            {
                                tPrice = 1000000;
                                this.span_toprice.InnerText = "dưới 1,000,000";
                            }
                            else
                            {
                                tPrice = int.Parse(toPrice) * 1000000;
                                this.span_toprice.InnerText = tPrice.ToString("##,#", CultureInfo.CreateSpecificCulture("en-US"));
                            }
                        }

                    //search mo rong
                    this.tourLst = bus.timKiemTourMoRong(tourtype, location, frPrice, tPrice, fromDate, toDate);
                    if (this.tourLst.Count == 0)
                    {
                        this.no_info_msg.InnerText = "Hiện tại đại lý chưa có tour du lịch này. Bạn có thể liên hệ trực tiếp đại lý nếu có nhu cầu.";
                    }
                    return;
                }
            }

            //process request from menu bar
            
            string type = Request["type"] == null ? "" : Request["type"].ToString().ToLower();
            switch (type)
            {
                case "tn": type = "Trong nước";
                    this.span_type.InnerHtml = " trong nước";
                    break;
                case "nn": type = "Nước ngoài";
                    this.span_type.InnerHtml = " nước ngoài";
                    break;
                case "ct": type = "City tour";
                    this.span_type.InnerHtml = " city tour";
                    break;
                case "od": type = "One-day tour";
                    this.span_type.InnerHtml = " one-day tour";
                    break;
                default: this.span_type.InnerHtml = " ";
                    break;
            }
            string departure = "";            
            TextInfo txtInfo = System.Threading.Thread.CurrentThread.CurrentCulture.TextInfo;
            if (Request["departure"] != null)
            {
                departure = Request["departure"].ToString();
                this.span_departure.InnerHtml = " khởi hành từ <span class=\"strong-type\">" + txtInfo.ToTitleCase(departure) + "</span>";
            }
            else
            {
                this.span_departure.InnerHtml = " ";
            }
            string visit = "";
            if (Request["visit"] != null)
            {
                visit = Request["visit"].ToString();
                this.span_visit.InnerHtml = " đến địa điểm <span class=\"strong-type\">" + txtInfo.ToTitleCase(visit) + "</span>";
            }
            else
            {
                this.span_visit.InnerHtml = " ";
            }
            //string visit = Request["visit"] == null ? "" : Request["visit"].ToString();
            this.tourLst = bus.layDanhSachTour(type, departure, visit);
            if (this.tourLst.Count == 0)
            {
                this.no_info_msg.InnerText = "Hiện tại đại lý chưa có tour du lịch này. Bạn có thể liên hệ trực tiếp đại lý nếu có nhu cầu.";
            }
        }

    }
}